`GET /v1/audit/{alert_id}` — single receipt with ADR-0006 four-state discrimination.
Returns Response (not Json) so each status path can carry distinct
headers and body without fighting axum’s Result<T, E> → IntoResponse
conversion (which forces non-2xx into the Err arm).
Path Parameters
Alert UUID
Response
Receipt JSON (alert + evidence wrapper)
Receipt envelope returned by GET /v1/audit/{alert_id} with a 200 (the
alert_evidence row exists). The runtime body is assembled via json! for
LEFT-JOIN flexibility; these structs mirror it field-for-field so
/openapi.json documents the REAL shape instead of two opaque objects. Kept
in lockstep with the json! body manually — the 202/410 responses use a
different shape (see the endpoint's other documented responses).
The alert object inside a 200 receipt body (GET /v1/audit/{alert_id}).
Decimal money fields are JSON strings (preserves precision).
The evidence object inside a 200 receipt body — the frozen inputs and
methodology pin that make the alert independently verifiable.
Always "ready" on a 200.